assert("ABCD".camelCaseToSnake == "abcd"); assert("A0CD".camelCaseToSnake == "a0_cd"); assert("aBcD".camelCaseToSnake == "a_bc_d"); assert("aBcDE".camelCaseToSnake == "a_bc_de"); assert("a0CDe".camelCaseToSnake == "a0_c_de"); assert("abCDe".camelCaseToSnake == "ab_c_de"); assert("aBc1".camelCaseToSnake == "a_bc1"); assert("xABy".camelCaseToSnake == "x_a_by"); assert("caccaPipiPuzzetta".camelCaseToSnake == "cacca_pipi_puzzetta"); assert("vacuum0PThreshold".camelCaseToSnake == "vacuum0_p_threshold"); assert("vacuum0PressThreshold".camelCaseToSnake == "vacuum0_press_threshold"); assert("".camelCaseToSnake == ""); assert("cop3pAvg".camelCaseToSnake == "cop3p_avg"); assert("cop3p".camelCaseToSnake == "cop3p"); assert("vSupply3pMeas".camelCaseToSnake == "v_supply3p_meas"); assert("pDisAtTCondSp".camelCaseToSnake == "p_dis_at_t_cond_sp"); assert("res8r1".camelCaseToSnake == "res8r1"); assert("pid00run".camelCaseToSnake == "pid00run");
Convert a lower camelcase string to snake case. We can't use regex to match at compile-time so we'll iterate through the string and convert it manually.